<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
LevenbergMarquardtOptimizer (Commons Math 3.2 API)
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="LevenbergMarquardtOptimizer (Commons Math 3.2 API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/LevenbergMarquardtOptimizer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/GaussNewtonOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../index.html?org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="LevenbergMarquardtOptimizer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.commons.math3.optim.nonlinear.vector.jacobian</FONT>
<BR>
Class LevenbergMarquardtOptimizer</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">org.apache.commons.math3.optim.BaseOptimizer</A>&lt;PAIR&gt;
      <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">org.apache.commons.math3.optim.BaseMultivariateOptimizer</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;
          <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer</A>
              <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer</A>
                  <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian">org.apache.commons.math3.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer</A>
                      <IMG SRC="../../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.commons.math3.optim.nonlinear.vector.jacobian.LevenbergMarquardtOptimizer</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>LevenbergMarquardtOptimizer</B><DT>extends <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian">AbstractLeastSquaresOptimizer</A></DL>
</PRE>

<P>
This class solves a least-squares problem using the Levenberg-Marquardt
 algorithm.
 <br/>
 Constraints are not supported: the call to
 <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)"><CODE>optimize</CODE></A> will throw
 <A HREF="../../../../../../../../org/apache/commons/math3/exception/MathUnsupportedOperationException.html" title="class in org.apache.commons.math3.exception"><CODE>MathUnsupportedOperationException</CODE></A> if bounds are passed to it.

 <p>This implementation <em>should</em> work even for over-determined systems
 (i.e. systems having more point than equations). Over-determined systems
 are solved by ignoring the point which have the smallest impact according
 to their jacobian column norm. Only the rank of the matrix and some loop bounds
 are changed to implement this.</p>

 <p>The resolution engine is a simple translation of the MINPACK <a
 href="http://www.netlib.org/minpack/lmder.f">lmder</a> routine with minor
 changes. The changes include the over-determined resolution, the use of
 inherited convergence checker and the Q.R. decomposition which has been
 rewritten following the algorithm described in the
 P. Lascaux and R. Theodor book <i>Analyse num&eacute;rique matricielle
 appliqu&eacute;e &agrave; l'art de l'ing&eacute;nieur</i>, Masson 1986.</p>
 <p>The authors of the original fortran version are:
 <ul>
 <li>Argonne National Laboratory. MINPACK project. March 1980</li>
 <li>Burton S. Garbow</li>
 <li>Kenneth E. Hillstrom</li>
 <li>Jorge J. More</li>
 </ul>
 The redistribution policy for MINPACK is available <a
 href="http://www.netlib.org/minpack/disclaimer">here</a>, for convenience, it
 is reproduced below.</p>

 <table border="0" width="80%" cellpadding="10" align="center" bgcolor="#E0E0E0">
 <tr><td>
    Minpack Copyright Notice (1999) University of Chicago.
    All rights reserved
 </td></tr>
 <tr><td>
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:
 <ol>
  <li>Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.</li>
 <li>Redistributions in binary form must reproduce the above
     copyright notice, this list of conditions and the following
     disclaimer in the documentation and/or other materials provided
     with the distribution.</li>
 <li>The end-user documentation included with the redistribution, if any,
     must include the following acknowledgment:
     <code>This product includes software developed by the University of
           Chicago, as Operator of Argonne National Laboratory.</code>
     Alternately, this acknowledgment may appear in the software itself,
     if and wherever such third-party acknowledgments normally appear.</li>
 <li><strong>WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
     WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
     UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
     THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
     IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
     OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
     OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
     USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
     THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
     DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
     UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
     BE CORRECTED.</strong></li>
 <li><strong>LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
     HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
     ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
     INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
     ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
     PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
     SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
     (INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
     EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
     POSSIBILITY OF SUCH LOSS OR DAMAGES.</strong></li>
 <ol></td></tr>
 </table>
<P>

<P>
<DL>
<DT><B>Since:</B></DT>
  <DD>2.0</DD>
<DT><B>Version:</B></DT>
  <DD>$Id: LevenbergMarquardtOptimizer.java 1462503 2013-03-29 15:48:27Z luc $</DD>
</DL>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.commons.math3.optim.<A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#evaluations">evaluations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#iterations">iterations</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer()">LevenbergMarquardtOptimizer</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build an optimizer for least squares problems with default values
 for all the tuning parameters (see the <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, double, double, double, double)"><CODE>other contructor</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(org.apache.commons.math3.optim.ConvergenceChecker)">LevenbergMarquardtOptimizer</A></B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim">ConvergenceChecker</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;&nbsp;checker)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that allows the specification of a custom convergence
 checker.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, org.apache.commons.math3.optim.ConvergenceChecker, double, double, double, double)">LevenbergMarquardtOptimizer</A></B>(double&nbsp;initialStepBoundFactor,
                            <A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim">ConvergenceChecker</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;&nbsp;checker,
                            double&nbsp;costRelativeTolerance,
                            double&nbsp;parRelativeTolerance,
                            double&nbsp;orthoTolerance,
                            double&nbsp;threshold)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that allows the specification of a custom convergence
 checker, in addition to the standard ones.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, double, double)">LevenbergMarquardtOptimizer</A></B>(double&nbsp;costRelativeTolerance,
                            double&nbsp;parRelativeTolerance,
                            double&nbsp;orthoTolerance)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Build an optimizer for least squares problems with default values
 for some of the tuning parameters (see the <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, double, double, double, double)"><CODE>other contructor</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, double, double, double, double)">LevenbergMarquardtOptimizer</A></B>(double&nbsp;initialStepBoundFactor,
                            double&nbsp;costRelativeTolerance,
                            double&nbsp;parRelativeTolerance,
                            double&nbsp;orthoTolerance,
                            double&nbsp;threshold)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The arguments control the behaviour of the default convergence checking
 procedure.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#doOptimize()">doOptimize</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Performs the bulk of the optimization algorithm.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.nonlinear.vector.jacobian.AbstractLeastSquaresOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.jacobian.<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian">AbstractLeastSquaresOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeCost(double[])">computeCost</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeCovariances(double[], double)">computeCovariances</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeResiduals(double[])">computeResiduals</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeSigma(double[], double)">computeSigma</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#computeWeightedJacobian(double[])">computeWeightedJacobian</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#getChiSquare()">getChiSquare</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#getRMS()">getRMS</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#getWeightSquareRoot()">getWeightSquareRoot</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)">optimize</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)">parseOptimizationData</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/AbstractLeastSquaresOptimizer.html#setCost(double)">setCost</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.nonlinear.vector.JacobianMultivariateVectorOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">JacobianMultivariateVectorOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/JacobianMultivariateVectorOptimizer.html#computeJacobian(double[])">computeJacobian</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.nonlinear.vector.MultivariateVectorOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.nonlinear.vector.<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">MultivariateVectorOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#computeObjectiveValue(double[])">computeObjectiveValue</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#getTarget()">getTarget</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#getTargetSize()">getTargetSize</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultivariateVectorOptimizer.html#getWeight()">getWeight</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.BaseMultivariateOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.<A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getLowerBound()">getLowerBound</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getStartPoint()">getStartPoint</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getUpperBound()">getUpperBound</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.commons.math3.optim.<A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getConvergenceChecker()">getConvergenceChecker</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getEvaluations()">getEvaluations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getIterations()">getIterations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxEvaluations()">getMaxEvaluations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxIterations()">getMaxIterations</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#incrementEvaluationCount()">incrementEvaluationCount</A>, <A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#incrementIterationCount()">incrementIterationCount</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="LevenbergMarquardtOptimizer()"><!-- --></A><H3>
LevenbergMarquardtOptimizer</H3>
<PRE>
public <B>LevenbergMarquardtOptimizer</B>()</PRE>
<DL>
<DD>Build an optimizer for least squares problems with default values
 for all the tuning parameters (see the <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, double, double, double, double)"><CODE>other contructor</CODE></A>.
 The default values for the algorithm settings are:
 <ul>
  <li>Initial step bound factor: 100</li>
  <li>Cost relative tolerance: 1e-10</li>
  <li>Parameters relative tolerance: 1e-10</li>
  <li>Orthogonality tolerance: 1e-10</li>
  <li>QR ranking threshold: <A HREF="../../../../../../../../org/apache/commons/math3/util/Precision.html#SAFE_MIN"><CODE>Precision.SAFE_MIN</CODE></A></li>
 </ul>
<P>
</DL>
<HR>

<A NAME="LevenbergMarquardtOptimizer(org.apache.commons.math3.optim.ConvergenceChecker)"><!-- --></A><H3>
LevenbergMarquardtOptimizer</H3>
<PRE>
public <B>LevenbergMarquardtOptimizer</B>(<A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim">ConvergenceChecker</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;&nbsp;checker)</PRE>
<DL>
<DD>Constructor that allows the specification of a custom convergence
 checker.
 Note that all the usual convergence checks will be <em>disabled</em>.
 The default values for the algorithm settings are:
 <ul>
  <li>Initial step bound factor: 100</li>
  <li>Cost relative tolerance: 1e-10</li>
  <li>Parameters relative tolerance: 1e-10</li>
  <li>Orthogonality tolerance: 1e-10</li>
  <li>QR ranking threshold: <A HREF="../../../../../../../../org/apache/commons/math3/util/Precision.html#SAFE_MIN"><CODE>Precision.SAFE_MIN</CODE></A></li>
 </ul>
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>checker</CODE> - Convergence checker.</DL>
</DL>
<HR>

<A NAME="LevenbergMarquardtOptimizer(double, org.apache.commons.math3.optim.ConvergenceChecker, double, double, double, double)"><!-- --></A><H3>
LevenbergMarquardtOptimizer</H3>
<PRE>
public <B>LevenbergMarquardtOptimizer</B>(double&nbsp;initialStepBoundFactor,
                                   <A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim">ConvergenceChecker</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;&nbsp;checker,
                                   double&nbsp;costRelativeTolerance,
                                   double&nbsp;parRelativeTolerance,
                                   double&nbsp;orthoTolerance,
                                   double&nbsp;threshold)</PRE>
<DL>
<DD>Constructor that allows the specification of a custom convergence
 checker, in addition to the standard ones.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>initialStepBoundFactor</CODE> - Positive input variable used in
 determining the initial step bound. This bound is set to the
 product of initialStepBoundFactor and the euclidean norm of
 <code>diag * x</code> if non-zero, or else to <code>initialStepBoundFactor</code>
 itself. In most cases factor should lie in the interval
 <code>(0.1, 100.0)</code>. <code>100</code> is a generally recommended value.<DD><CODE>checker</CODE> - Convergence checker.<DD><CODE>costRelativeTolerance</CODE> - Desired relative error in the sum of
 squares.<DD><CODE>parRelativeTolerance</CODE> - Desired relative error in the approximate
 solution parameters.<DD><CODE>orthoTolerance</CODE> - Desired max cosine on the orthogonality between
 the function vector and the columns of the Jacobian.<DD><CODE>threshold</CODE> - Desired threshold for QR ranking. If the squared norm
 of a column vector is smaller or equal to this threshold during QR
 decomposition, it is considered to be a zero vector and hence the rank
 of the matrix is reduced.</DL>
</DL>
<HR>

<A NAME="LevenbergMarquardtOptimizer(double, double, double)"><!-- --></A><H3>
LevenbergMarquardtOptimizer</H3>
<PRE>
public <B>LevenbergMarquardtOptimizer</B>(double&nbsp;costRelativeTolerance,
                                   double&nbsp;parRelativeTolerance,
                                   double&nbsp;orthoTolerance)</PRE>
<DL>
<DD>Build an optimizer for least squares problems with default values
 for some of the tuning parameters (see the <A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html#LevenbergMarquardtOptimizer(double, double, double, double, double)"><CODE>other contructor</CODE></A>.
 The default values for the algorithm settings are:
 <ul>
  <li>Initial step bound factor}: 100</li>
  <li>QR ranking threshold}: <A HREF="../../../../../../../../org/apache/commons/math3/util/Precision.html#SAFE_MIN"><CODE>Precision.SAFE_MIN</CODE></A></li>
 </ul>
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>costRelativeTolerance</CODE> - Desired relative error in the sum of
 squares.<DD><CODE>parRelativeTolerance</CODE> - Desired relative error in the approximate
 solution parameters.<DD><CODE>orthoTolerance</CODE> - Desired max cosine on the orthogonality between
 the function vector and the columns of the Jacobian.</DL>
</DL>
<HR>

<A NAME="LevenbergMarquardtOptimizer(double, double, double, double, double)"><!-- --></A><H3>
LevenbergMarquardtOptimizer</H3>
<PRE>
public <B>LevenbergMarquardtOptimizer</B>(double&nbsp;initialStepBoundFactor,
                                   double&nbsp;costRelativeTolerance,
                                   double&nbsp;parRelativeTolerance,
                                   double&nbsp;orthoTolerance,
                                   double&nbsp;threshold)</PRE>
<DL>
<DD>The arguments control the behaviour of the default convergence checking
 procedure.
 Additional criteria can defined through the setting of a <A HREF="../../../../../../../../org/apache/commons/math3/optim/ConvergenceChecker.html" title="interface in org.apache.commons.math3.optim"><CODE>ConvergenceChecker</CODE></A>.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>initialStepBoundFactor</CODE> - Positive input variable used in
 determining the initial step bound. This bound is set to the
 product of initialStepBoundFactor and the euclidean norm of
 <code>diag * x</code> if non-zero, or else to <code>initialStepBoundFactor</code>
 itself. In most cases factor should lie in the interval
 <code>(0.1, 100.0)</code>. <code>100</code> is a generally recommended value.<DD><CODE>costRelativeTolerance</CODE> - Desired relative error in the sum of
 squares.<DD><CODE>parRelativeTolerance</CODE> - Desired relative error in the approximate
 solution parameters.<DD><CODE>orthoTolerance</CODE> - Desired max cosine on the orthogonality between
 the function vector and the columns of the Jacobian.<DD><CODE>threshold</CODE> - Desired threshold for QR ranking. If the squared norm
 of a column vector is smaller or equal to this threshold during QR
 decomposition, it is considered to be a zero vector and hence the rank
 of the matrix is reduced.</DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="doOptimize()"><!-- --></A><H3>
doOptimize</H3>
<PRE>
protected <A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A> <B>doOptimize</B>()</PRE>
<DL>
<DD>Performs the bulk of the optimization algorithm.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#doOptimize()">doOptimize</A></CODE> in class <CODE><A HREF="../../../../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</A>&lt;<A HREF="../../../../../../../../org/apache/commons/math3/optim/PointVectorValuePair.html" title="class in org.apache.commons.math3.optim">PointVectorValuePair</A>&gt;</CODE></DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the point/value pair giving the optimal value of the
 objective function.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/LevenbergMarquardtOptimizer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../../org/apache/commons/math3/optim/nonlinear/vector/jacobian/GaussNewtonOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector.jacobian"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../../../../index.html?org/apache/commons/math3/optim/nonlinear/vector/jacobian/LevenbergMarquardtOptimizer.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="LevenbergMarquardtOptimizer.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2003-2013 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
